'use strict';
/**
 * author：小小游 --- allen
 * date：2018.02.06
 * lastUpdateDate：2018.02.06
 * description：创建类型化数组的五种方式
 */
/**
 * 下面对一些概念做一些总结：
 * Int8Array：8位有符号整数，长度为1个字节
 * Uint8Array：8位无符号整数，长度为1个字节
 *
 * Int16Array：16位有符号整数，长度为2个字节
 * Uint16Array：16位无符号整数，长度为2个字节
 *
 * Int32Array：32位有符号整数，长度为4个字节
 * Uint32Array：32位无符号整数，长度为4个字节
 *
 * Float32Array：32位浮点数，长度为4个字节
 * Float64Array：64位浮点数，长度为8个字节
 */
/**
 * 第五种创建类型化数组的方式
 * 在内存中开辟了一个存储空间，占用10个byte，注意这个创建好的
 * 类型化数组并不是在内存当中又开辟了一个新的存储空间，它的数据
 * 还是存储在buffer对象上的，这个要理解好
 */
let buffer = new ArrayBuffer(10);
// 第五种创建类型化数组的方式
/**
 * 我们使用的是Int16Array一个数是占用2个字节
 * 表示这个创建出来的类型化数组的长度为5，它的byte为10
 */
/**
 * 它本身跟上面的buffer对象没有关系，下面这样方式是新创建了一个
 * buffer对象
 */
let buf = new Int16Array([12, 5, 101]);
/**
 * 注意：
 * 1.这样创建出来的buf2对象只是继承了buf的值而已，并不是和buf
 * 共享的同一块内存空间，它是开辟了两个不同的buffer对象，这个要理解好
 */
let buf2 = new Int8Array(buf);
// 3 6 Int8Array [ 12, 5, 101 ]
console.log(buf2.length, buf2.byteLength, buf2);
